/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ig.formato.modelo;

import ig.formato.dao.InformeDao;
import ig.formato.dto.CampoPlanoDTO;
import ig.formato.dto.CircularDTO;
import ig.formato.dto.ConexionDTO;
import ig.formato.dto.ConfiguracionDTO;
import ig.formato.dto.EntidadDTO;
import ig.formato.dto.InformeDTO;
import ig.formato.dto.PlanoAsociadoDTO;
import ig.formato.dto.TipoRegistroDTO;
import ig.formato.gui.app.IPReporte;
import ig.formato.util.IGFormatoException;
import java.awt.Frame;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Collection;
import java.util.Hashtable;
import net.sf.jasperreports.engine.JRException;

/**
 *
 * @author jsanchez
 */
public interface IMReporte {

    @SuppressWarnings(value = "unchecked")
    public void buildInforme(Hashtable hcampoInformeDao, Hashtable<String, Integer> propLeng, Hashtable<String, String> propForma, Hashtable<String, String> propType, Connection conn, String CONSULTA, InformeDTO informeDTO, Timestamp timestamp, EntidadDTO entidadDTO, Integer tipoInforme) throws JRException, ClassNotFoundException, SQLException, IOException, IGFormatoException, IllegalAccessException, InvocationTargetException;

    public Object[] buscar() throws IGFormatoException;

    public Collection buscarConexiones() throws IGFormatoException;

    public Collection buscarEntidades() throws IGFormatoException;

    public Object[] buscarInformes(Integer integer) throws IGFormatoException;

    public void generarReporte(CircularDTO circularDTO, InformeDTO informeDTO, Timestamp timestamp, EntidadDTO entidadDTO, ConexionDTO conexionDTO, Integer tipoInforme);

    public ConfiguracionDTO getConfiguracionDTOCosecutivo();

    public ConfiguracionDTO getConfiguracionTRR_IG_FORMATO();

    public Integer getConsecutivo();

    public Integer getConsecutivoMM();

    public Object getEntidad(Integer integer) throws IGFormatoException;

    public Object getFuenteDeDatos(Integer integer) throws IGFormatoException;

    public InformeDao getInformeDao();

    public Hashtable<Integer, String> getPlano();

    public Collection<PlanoAsociadoDTO> getPlanoAsociadoDTOs();

    public String getPosiblesErrores();

    public EntidadDTO getW_entidadDTO();

    public boolean isValidarComportamiento(TipoRegistroDTO tr);

    public String setCamposInternos(TipoRegistroDTO tipoRegistroDTO, EntidadDTO entidadDto, CampoPlanoDTO campoPlanoDTO, String formula,String object,String nombre);

    public void setColumnasAProcesar(Collection<String> c);

    public String setConfiguracion(String valor, ConfiguracionDTO configuracionDTO);

    public void setConsecutivo(Integer consecutivo);

    public void setPlano(String plano, String posiblesErrores, Timestamp fc) throws PropertyVetoException;

    public void setSaltarPagina(Boolean selected);

    public void setSaltoDePagina(String string);

    public void setValidarComportamiento(boolean b);

    public void setW_informeDTO(InformeDTO w_informeDTO);

    public void setFrame(Frame frame);

    public void setPanel(IPReporte panel);

    public String convertirObjetToString(Object _obj) throws Exception ;
}
